package collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * 对Point集合进行排列
 */
public class SortPoint {
    public static void main(String[] args) {
        List<Point> list = new ArrayList<>();
        list.add(new Point(5, 8));
        list.add(new Point(33, 298));
        list.add(new Point(21, 52));
        list.add(new Point(45, 6));
        list.add(new Point(55, 69));
        list.add(new Point(1, 2));
        System.out.println("list原始数据: " + list); //[(5,8), (33,290), (21,52), (45,6), (55,69), (1,2)]

        Collections.sort(list, new Comparator<Point>() {
            @Override
            public int compare(Point o1, Point o2) {
                int len1 = o1.getX() * o1.getX() + o1.getY() * o1.getY();
                int len2 = o2.getX() * o1.getX() + o1.getY() * o1.getY();
                return len1-len2; //升序
                //return len2-len1; //降序
            }
        });
        System.out.println("list排序后数据:" + list);
    }
}
